/**************************************************************************************************
  Filename:       pulseGATTprofile.h
  Revised:        $Date: 2010-08-06 08:56:11 -0700 (Fri, 06 Aug 2010) $
  Revision:       $Revision: 23333 $

  Description:    This file contains the Pulse GATT profile definitions and
                  prototypes.

**************************************************************************************************/

#ifndef PULSEGATTPROFILE_H
#define PULSEGATTPROFILE_H

#ifdef __cplusplus
extern "C"
{
#endif

/*********************************************************************
 * INCLUDES
 */

/*********************************************************************
 * CONSTANTS
 */

// Profile Parameters
#define PULSEPROFILE_FREQ                   0  // RW uint8 - Profile Characteristic 1 value 
#define PULSEPROFILE_ECG                    1  // RW uint8 - Profile Characteristic 2 value

// Pulse Profile Service UUID
#define PULSEPROFILE_SERV_UUID              0xFFF0
    
// Key Pressed UUID
#define PULSEPROFILE_FREQ_UUID              0xFFF1
#define PULSEPROFILE_ECG_UUID               0xFFF2
  
// Pulse Keys Profile Services bit fields
#define PULSEPROFILE_SERVICE                0x00000001

/*********************************************************************
 * TYPEDEFS
 */

  
  
/*********************************************************************
 * MACROS
 */

/*********************************************************************
 * Profile Callbacks
 */


/*********************************************************************
 * API FUNCTIONS 
 */

/*
 * PulseProfile_AddService- Initializes the Pulse GATT Profile service by registering
 *          GATT attributes with the GATT server.
 *
 * @param   services - services to add. This is a bit map and can
 *                     contain more than one service.
 */

extern bStatus_t PulseProfile_AddService( uint32 services );
  
/*
 * PulseProfile_SetParameter - Set a Pulse GATT Profile parameter.
 *
 *    param - Profile parameter ID
 *    len - length of data to right
 *    value - pointer to data to write.  This is dependent on
 *          the parameter ID and WILL be cast to the appropriate 
 *          data type (example: data type of uint16 will be cast to 
 *          uint16 pointer).
 */
extern bStatus_t PulseProfile_SetParameter( uint8 param, uint8 len, void *value );
  
/*
 * PulseProfile_GetParameter - Get a Pulse GATT Profile parameter.
 *
 *    param - Profile parameter ID
 *    value - pointer to data to write.  This is dependent on
 *          the parameter ID and WILL be cast to the appropriate 
 *          data type (example: data type of uint16 will be cast to 
 *          uint16 pointer).
 */
extern bStatus_t PulseProfile_GetParameter( uint8 param, void *value );


/*********************************************************************
*********************************************************************/

#ifdef __cplusplus
}
#endif

#endif /* PULSEGATTPROFILE_H */
